package cn.data.stream.annotation;

import cn.data.stream.enums.StreamType;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.context.annotation.Scope;
import org.springframework.core.annotation.AliasFor;

/**
 * 标注 stream类
 */
@Scope(value = "prototype")
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@Output
public @interface DataStream {

    /**
     * stream 类型 默认stream
     */
    StreamType type() default StreamType.STREAM;

    String value() default "";

    @AliasFor(annotation = Output.class, attribute = "outputs")
    String[] outputs() default {};
}